package com.service.infoEntry.dto;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.service.config.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class UploadProgrammeDto {
    /**
     * 合同号
     */
    @Excel(name = "合同号")
    @ApiModelProperty("合同号")
    private String contractNo;
    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    @ApiModelProperty("项目名称")
    private String name;
    /**
     * 服务类型：网络云服务（含老云管理）安全云服务 混合类（网络+安全+其他）
     */
    @Excel(name = "服务类型")
    @ApiModelProperty("服务类型：网络云服务（含老云管理）安全云服务 混合类（网络+安全+其他）")
    private String serviceType;
    /**
     * 项目类型：新项目，新项目+存量项目，MSP-新项目，MSP-存量项目，MSP-新项目+存量项目
     */
    @Excel(name = "项目类型")
    @ApiModelProperty("项目类型：新项目，新项目+存量项目，MSP-新项目，MSP-存量项目，MSP-新项目+存量项目")
    private String programmeType;
    /**
     * 项目是否公开
     */
    @Excel(name = "项目是否公开")
    private String programmeStatusStr;
    /**
     * 行业
     */
    @Excel(name = "L2行业")
    @ApiModelProperty("行业")
    private String business;
    /**
     * L3行业
     */
    @Excel(name = "L3行业")
    @ApiModelProperty("L3行业")
    private String industryLevelThree;
    /**
     * 代表处（新增）
     */
    @Excel(name = "代表处")
    @ApiModelProperty("代表处（新增）")
    private String repOffice;
    /**
     * 区域
     */
    @Excel(name = "地市")
    @ApiModelProperty("区域")
    private String region;
    /**
     * 项目状态修改后：0--启动 1--POC试用 2--形成PO 3--交付验收 4--形成收入 5--持续运维 1-1--挂起（11试用未转商用）1-2--丢标（12异常关闭）
     * :0-启动;1-下单;2-交付;3-运维;4-关闭
     */
    @Excel(name = "项目状态")
    @ApiModelProperty("项目状态")
    private String statusStr;
    /**
     * 项目把握度：0% 10% 25% 50% 75% 100%
     */
    @Excel(name = "项目把握度")
    @ApiModelProperty("项目把握度：0% 10% 25% 50% 75% 100%")
    private String proPower;

    /**
     * 项目背景（包括友商信息）
     */
    @Excel(name = "项目背景（包括友商信息）")
    @ApiModelProperty("项目背景（包括友商信息）")
    private String proBack;

    /**
     * 项目规模（设备型号+数量）
     */
    @Excel(name = "项目规模（设备型号+数量）")
    @ApiModelProperty("项目规模（设备型号+数量）")
    private String scale;
    /**
     * 跟踪状态 1--进行中 2--关闭 3--挂起
     */
    @Excel(name = "跟踪状态")
    @ApiModelProperty("跟踪状态 1--进行中 2--关闭 3--挂起")
    private String trackStatusStr;
    /**
     * 是否top项目：1--true 0--false（新增）
     */
    @Excel(name = "是否top项目")
    @ApiModelProperty("是否top项目：1--true 0--false（新增）")
    private String isTopStr;
    /**
     * 预计试用台数
     */
    @Excel(name = "预计试用台数")
    @ApiModelProperty("预计试用台数")
    private Integer expTrialCount;
    /**
     * 已TRY台数
     */
    @Excel(name = "已TRY台数")
    @ApiModelProperty("已TRY台数")
    private Integer tryCount;
    /**
     * 已BUY台数
     */@Excel(name = "已BUY台数")
    @ApiModelProperty("已BUY台数")
    private Integer buyCount;
    /**
     * 预计商用台数
     */
    @Excel(name = "预计商用台数")
    @ApiModelProperty("预计商用台数")
    private Integer expCommercialCount;
    /**
     * 预估下单时间
     */
    @Excel(name = "预估下单时间")
    @ApiModelProperty("预估下单时间")
    @JsonFormat(pattern = "yyyy/mm/dd")
    private Date expOrderTime;
    /**
     * 实际下单时间
     */
    @Excel(name = "实际下单时间")
    @ApiModelProperty("实际下单时间")
    @JsonFormat(pattern = "yyyy/mm/dd")
    private Date actualOrderTime;
    /**
     * 项目进展
     */
    @Excel(name = "项目进展")
    @ApiModelProperty("项目进展")
    private String process;
    /**
     * 困难和风险
     */
    @Excel(name = "困难和风险")
    @ApiModelProperty("困难和风险")
    private String difficultiesOrRisk;
    /**
     * 一线客户经理
     */
    @Excel(name = "一线客户经理")
    @ApiModelProperty("一线客户经理")
    private String lineCusManage;
    /**
     * 产品经理
     */
    @Excel(name = "一线产品经理")
    @ApiModelProperty("一线产品经理")
    private String lineProductManage;
    /**
     * 一线商业经理
     */
    @Excel(name = "一线商业经理")
    @ApiModelProperty("一线商业经理")
    private String lineBusinessManage;
    /**
     * 一线行业代表
     */
    @Excel(name = "一线行业代表")
    @ApiModelProperty("一线行业代表")
    private String lineIndustryRep;
    /**
     * 运营责任人（新增）
     */
    @Excel(name = "运营责任人")
    @ApiModelProperty("运营责任人")
    private String operationPerson;
    /**
     * MSP(销-硬件)名称
     */
    @Excel(name = "MSP(销-硬件)名称")
    @ApiModelProperty("MSP(销-硬件)名称")
    private String mspPinHwName;
    /**
     * MSP(销-硬件)联系人-姓名
     */
    @Excel(name = "MSP(销-硬件)联系人-姓名")
    @ApiModelProperty("MSP(销-硬件)联系人-姓名")
    private String mspPinHwConName;
    /**
     * MSP(销-硬件)-联系人-电话
     */
    @Excel(name = "MSP(销-硬件)联系人-电话")
    @ApiModelProperty("MSP(销-硬件)联系人-电话")
    private String mspPinHwConTel;
    /**
     * MSP(销-硬件)-联系人-邮箱
     *
     */
    @Excel(name = "MSP(销-硬件)联系人-邮箱")
    @ApiModelProperty("MSP(销-硬件)联系人-邮箱")
    private String mspPinHwConEmail;
    /**
     * MSP(服-硬件)名称
     */@ApiModelProperty("MSP(服-硬件)名称")
    @Excel(name = "MSP(服-硬件)名称")
    private String mspSerHwName;
    /**
     * MSP(服-硬件)-联系人-邮箱
     */
    @Excel(name = "MSP(服-硬件)联系人-邮箱")
    @ApiModelProperty("MSP(服-硬件)联系人-邮箱")
    private String mspSerHwConEmail;
    /**
     * MSP(服-硬件)-联系人-电话
     */
    @Excel(name = "MSP(服-硬件)联系人-电话")
    @ApiModelProperty("MSP(服-硬件)联系人-电话")
    private String mspSerHwConTel;
    /**
     * MSP(服-硬件)联系人-姓名
     */
    @Excel(name = "MSP(服-硬件)联系人-姓名")
    @ApiModelProperty("MSP(服-硬件)联系人-姓名")
    private String mspSerHwConName;
    /**
     * MSP(销-云服务)名称
     */
    @Excel(name = "MSP(销-云服务)名称")
    @ApiModelProperty("MSP(销-云服务)名称")
    private String mspPinCloudName;
    /**
     * MSP(销-云服务)联系人-姓名
     */
    @Excel(name = "MSP(销-云服务)联系人-姓名")
    @ApiModelProperty("MSP(销-云服务)联系人-姓名")
    private String mspPinCloudConName;
    /**
     * MSP(销-云服务)联系人-电话
     *
     */
    @Excel(name = "MSP(销-云服务)联系人-电话")
    @ApiModelProperty("MSP(销-云服务)联系人-电话")
    private String mspPinCloudConTel;
    /**
     * MSP(销-云服务)联系人-邮箱
     *
     */
    @Excel(name = "MSP(销-云服务)联系人-邮箱")
    @ApiModelProperty("MSP(销-云服务)联系人-邮箱")
    private String mspPinCloudConEmail;
    /**
     * MSP(服-云服务)-名称
     *
     */
    @Excel(name = "MSP(服-云服务)名称")
    @ApiModelProperty("MSP(服-云服务)名称")
    private String mspSerCloudName;
    /**
     * MSP(服-云服务)联系人-电话
     */
    @ApiModelProperty("MSP(服-云服务)联系人-电话")
    @Excel(name = "MSP(服-云服务)联系人-电话")
    private String mspSerCloudConTel;
    /**
     * MSP(服-云服务)联系人-姓名
     */
    @Excel(name = "MSP(服-云服务)联系人-姓名")
    @ApiModelProperty("MSP(服-云服务)联系人-姓名")
    private String mspSerCloudConName;
    /**
     * MSP(服-云服务)联系人-邮箱
     */@ApiModelProperty("MSP(服-云服务)联系人-邮箱")
    @Excel(name = "MSP(服-云服务)联系人-邮箱")
    private String mspSerCloudConEmail;
    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String cusName;
    /**
     * 客户联系人-姓名
     */
    @Excel(name = "客户联系人-姓名")
    @ApiModelProperty("客户联系人-姓名")
    private String cusContactsName;
    /**
     * 客户联系人-电话
     */
    @Excel(name = "客户联系人-电话")
    @ApiModelProperty("客户联系人-电话")
    private String cusContactsTel;
    /**
     * 客户联系人-邮箱
     */
    @Excel(name = "客户联系人-邮箱")
    @ApiModelProperty("客户联系人-邮箱")
    private String cusContactsEmail;
    /**
     * 客户公司名称
     */
    @Excel(name = "客户公司名称")
    @ApiModelProperty("客户公司名称")
    private String cusCpName;
    /**
     * 客户公司地点
     */
    @Excel(name = "客户公司地点")
    @ApiModelProperty("客户公司地点")
    private String cusCpPlace;
    /**
     * 客户信息来源
     */
    @Excel(name = "客户信息来源")
    @ApiModelProperty("客户信息来源")
    private String cusInfoSource;
    /**
     * 客户线索获取日期
     */
    @Excel(name = "客户线索获取日期")
    @ApiModelProperty("客户线索获取日期")
    @JsonFormat(pattern = "yyyy/mm/dd")
    private Date cusClueSourceDate;
    /**
     * 客户标签
     */
    @Excel(name = "客户标签")
    @ApiModelProperty("客户标签")
    private String cusLabel;
    /**
     * 客户注册时间
     */
    @Excel(name = "客户注册时间")
    @ApiModelProperty("客户注册时间")
    @JsonFormat(pattern = "yyyy/mm/dd")
    private Date cusRegisterTime;
    /**
     * 客户乾坤云账号
     */
    @Excel(name = "客户乾坤云账号")
    @ApiModelProperty("客户乾坤云账号")
    private String cusTenantAccount;
    /**
     * 客户优先级标签
     */
    @Excel(name = "客户优先级标签")
    @ApiModelProperty("客户优先级标签")
    private String cusPriLabel;

    /**
     * 客户需求
     */
    @Excel(name = "客户需求")
    @ApiModelProperty("客户需求")
    private String cusDemand;
    /**
     * 客户预算
     */
    @Excel(name = "客户预算")
    @ApiModelProperty("客户预算")
    private String cusBudget;
    /**
     * 客户上次联系时间
     */
    @Excel(name = "客户上次联系时间")
    @ApiModelProperty("客户上次联系时间")
    @JsonFormat(pattern = "yyyy/mm/dd")
    private Date cusLastContactTime;
    /**
     * 客户互动备注
     */
    @Excel(name = "客户互动备注")
    @ApiModelProperty("客户互动备注")
    private String cusRemarks;

    /**
     * 是否私密:true-1-公开;false-0-私密
     */
    @ApiModelProperty("是否私密:true-1-公开;false-0-私密")
    @ExcelIgnore
    private String programmeStatus;

    public String getProgrammeStatus()
    {
        if(null != programmeStatusStr && !"".equals(programmeStatusStr))
        {
            switch (programmeStatusStr)
            {
                case "公开":
                    programmeStatus = "1";
                    break;
                case "私密":
                    programmeStatus = "0";
                    break;
                default:
                    break;
            }
        }
        return programmeStatus;
    }
}
